home *** CD-ROM | disk | FTP | other *** search
- //------------------------------------
- //
- // OPTIONS screen functions
- //
- //------------------------------------
-
- function OptionsGui::onOpen()
- {
- //the IRC options page
- IRCOptions::init();
-
- OptionsMovement::init();
- OptionsVideo::init();
- OptionsGraphics::init();
- OptionsNetwork::init();
- OptionsSound::init();
- }
-
- function OptionsGui::onClose()
- {
- //the IRC options page
- IRCOptions::Shutdown();
-
- OptionsNetwork::shutdown();
- }
-
- //--- OPTIONS VIDEO ------------------------------------------------
-
- function OptionsVideo::init()
- {
- //validate the prefs
- OptionsVideo::validate();
-
- //set the values in the controls
- OptionsVideoMode::update();
- FGCombo::setSelected(IDCTG_OPTS_VID_FULLSCRN, FGCombo::findEntry(IDCTG_OPTS_VID_FULLSCRN, $pref::VideoFullScreenDriver));
- FGCombo::setSelected(IDCTG_OPTS_VID_WINDOW, FGCombo::findEntry(IDCTG_OPTS_VID_WINDOW, $pref::VideoWindowedDriver));
- FGCombo::setSelected(IDCTG_OPTS_VID_RES, FGCombo::findEntry(IDCTG_OPTS_VID_RES, $pref::VideoFullScreenRes));
-
- //the openGL part
- FGCombo::clear(OptionsVideo::OpenGLCombo);
- FGCombo::addEntry(OptionsVideo::OpenGLCombo, "TNT/TNT2", 0);
- FGCombo::addEntry(OptionsVideo::OpenGLCombo, "i740", 1);
- FGCombo::addEntry(OptionsVideo::OpenGLCombo, "Generic", 2);
- // FGCombo::addEntry(OptionsVideo::OpenGLCombo, "G200/G400", 3);
- if ($pref::VideoOpenGLMode == "TNT/TNT2")
- {
- FGCombo::setSelected(OptionsVideo::OpenGLCombo, 0);
- }
- else if ($pref::VideoOpenGLMode == "i740")
- {
- FGCombo::setSelected(OptionsVideo::OpenGLCombo, 1);
- }
- else if ($pref::VideoOpenGLMode == "Generic")
- {
- FGCombo::setSelected(OptionsVideo::OpenGLCombo, 2);
- }
- else
- {
- FGCombo::setSelected(OptionsVideo::OpenGLCombo, 3);
- }
-
- %temp = getWord(Control::getValue(IDCTG_OPTS_VID_FULLSCRN), 0);
- if (%temp == "OpenGL")
- {
- Control::setActive(OptionsVideo::OpenGLCombo, true);
- OptionsVideo::OpenGLsetup();
- }
- else Control::setActive(OptionsVideo::OpenGLCombo, false);
-
- $pref::VideoGamma = $pref::Display::gammaValue / 2;
- if ($pref::VideoGamma == 0) $pref::VideoGamma = 0.5;
- Control::setValue(IDCTG_OPTS_VID_GAMMA, $pref::VideoGamma);
- }
-
- function OptionsVideo::OpenGLsetup()
- {
- %temp = getWord(Control::getValue(IDCTG_OPTS_VID_FULLSCRN), 0);
- if (%temp == "OpenGL")
- {
- Control::setActive(OptionsVideo::OpenGLCombo, true);
- %temp = FGCombo::getSelected(OptionsVideo::OpenGLCombo);
- if (%temp == 0)
- {
- $pref::VideoOpenGLMode = "TNT/TNT2";
- OptionsVideo::setUpTNT();
- }
- else if (%temp == 1)
- {
- $pref::VideoOpenGLMode = "i740";
- OptionsVideo::setUpi740();
- }
- else
- {
- $pref::VideoOpenGLMode = "Generic";
- OptionsVideo::setUpGeneric();
- }
- // else
- // {
- // $pref::VideoOpenGLMode = "G200/G400";
- // OptionsVideo::setUpG200G400();
- // }
- }
- else
- {
- Control::setActive(OptionsVideo::OpenGLCombo, false);
- }
- }
-
- function OptionsVideo::validate()
- {
- if ($pref::VideoFullScreen == "") $pref::VideoFullScreen = "FALSE";
- if ($pref::VideoFullScreenDriver == "")
- {
- if (isGfxDriver(MainWindow, "Glide")) $pref::VideoFullScreenDriver = "Glide";
- else $pref::VideoFullScreenDriver = "Software";
- }
- if ($pref::VideoWindowedDriver == "") $pref::VideoWindowedDriver = "Software";
- if ($pref::VideoFullScreenRes == "") $pref::VideoFullScreenRes = "640x480";
- if ($pref::VideoGamma == "") $pref::VideoGamma = "0.5";
- }
-
- function OptionsVideo::onApply()
- {
- //store the prefs...
- $pref::VideoFullScreen = Control::getValue(IDCTG_OPTS_VID_MODE_FS);
- $pref::VideoFullScreenDriver = getWord(Control::getValue(IDCTG_OPTS_VID_FULLSCRN), 0);
- $pref::VideoWindowedDriver = getWord(Control::getValue(IDCTG_OPTS_VID_WINDOW), 0);
- $pref::VideoFullScreenRes = Control::getValue(IDCTG_OPTS_VID_RES);
- $pref::VideoOpenGLMode = getWord(Control::getValue(OptionsVideo::OpenGLCombo), 0);
-
- //validate the prefs
- OptionsVideo::validate();
-
- //apply the prefs
- OptionsVideo::apply();
- }
-
- $firstTimeThroughApply = true;
-
- function OptionsVideo::apply()
- {
- //check the openGL setup
- OptionsVideo::OpenGLsetup();
-
- setWindowedDevice(MainWindow, $pref::VideoWindowedDriver);
- %temp = setFullscreenDevice(MainWindow, $pref::VideoFullScreenDriver);
-
- if (String::ICompare(%temp, "false") == 0) {
- %temp = setFullscreenDevice(MainWindow, "Software");
- if (String::ICompare(%temp, "false") != 0)
- $pref::VideoFullScreenDriver = "Software";
- }
-
- %fs = false;
- if (String::ICompare($pref::VideoFullScreen, "TRUE") == 0) {
- // set fs mode
- setFullscreenMode(MainWindow, "true");
- %fs = true;
- }
- else {
- // set windowed mode
- setFullscreenMode(MainWindow, "false");
-
- if ($firstTimeThroughApply == true) {
- if (GUI::isIn8BitMode() == "true") {
- GUI::issue8BitWarning();
- }
- $firstTimeThroughApply = false;
- }
- }
-
- if ($pref::VideoFullScreenRes != "") {
- setFSResolution(MainWindow, $pref::VideoFullScreenRes);
- }
- if (%fs == true) {
- if (isVirtualFS(MainWindow) == true) {
- echo("Virtual FS");
- $useLowRes3D = true;
- } else {
- $useLowRes3D = false;
- }
- }
-
- flushTextureCache();
- }
-
- function OptionsVideoMode::update()
- {
- Control::setValue(IDCTG_OPTS_VID_MODE_FS, $pref::VideoFullScreen);
- if (! String::ICompare($pref::VideoFullScreen, "FALSE"))
- {
- Control::setValue(IDCTG_OPTS_VID_MODE_WIN, "TRUE");
- }
- else
- {
- Control::setValue(IDCTG_OPTS_VID_MODE_WIN, "FALSE");
- }
- }
-
- function OptionsVideo::setGamma()
- {
- $pref::VideoGamma = Control::getValue(IDCTG_OPTS_VID_GAMMA);
- setGamma(MainWindow, 0.05 + (1.95 * $pref::VideoGamma));
- flushTextureCache();
- resetUpdateRegion(MainWindow);
- }
-
- function OptionsVideo::setUpTNT()
- {
- echo("setting up TNT/TNT2");
- $pref::OpenGL::NoPackedTextures = false;
- $pref::OpenGL::NoPalettedTextures = true;
-
- flushTextureCache();
- }
-
- function OptionsVideo::setUpi740()
- {
- echo("setting up i740");
- $pref::OpenGL::NoPackedTextures = true;
- $pref::OpenGL::NoPalettedTextures = true;
-
- flushTextureCache();
- }
-
- function OptionsVideo::setUpGeneric()
- {
- echo("setting up Generic OpenGL");
- $pref::OpenGL::NoPackedTextures = true;
- $pref::OpenGL::NoPalettedTextures = true;
-
- flushTextureCache();
- }
-
- function OptionsVideo::setUpG200G400()
- {
- echo("setting up G200/G400");
- $pref::OpenGL::NoPackedTextures = true;
- $pref::OpenGL::NoPalettedTextures = true;
-
- flushTextureCache();
- }
-
- //--- OPTIONS MOVEMENT ------------------------------------------------
-
- $minMouseSensitivity = 0.0002;
- $maxMouseSensitivity = 0.004;
-
- function OptionsMovement::init()
- {
- %sensitivity = Client::getMouseSensitivity("playMap.sae");
- %percentage = (%sensitivity - $minMouseSensitivity) / ($maxMouseSensitivity - $minMouseSensitivity);
- Control::setValue(IDCTG_OPTS_CFG_MOUSE_SENSITIVE, %percentage);
- Control::setValue(IDCTG_OPTS_CFG_MOUSE_X_FLIP, Client::getMouseXAxisFlip("playMap.sae"));
- Control::setValue(IDCTG_OPTS_CFG_MOUSE_Y_FLIP, Client::getMouseYAxisFlip("playMap.sae"));
-
- if ($pref::freeLookAlwaysOn == "")
- {
- $pref::freeLookAlwaysOn = "TRUE";
- $pref::freeLook = "TRUE";
- }
- Control::setValue(OptionsMovement::freeLook, $pref::freeLookAlwaysOn);
- }
-
- function OptionsMovement::updateMouse()
- {
- editActionMap("playMap.sae");
-
- //calculate the sensitivity
- %percentage = Control::getValue(IDCTG_OPTS_CFG_MOUSE_SENSITIVE);
- %sensitivity = $minMouseSensitivity + (%percentage * ($maxMouseSensitivity - $minMouseSensitivity));
-
- if (String::ICompare(Control::getValue(IDCTG_OPTS_CFG_MOUSE_X_FLIP), "TRUE") == 0)
- {
- bindAction(mouse0, xaxis0, TO, IDACTION_YAW, Scale, %sensitivity);
- }
- else
- {
- bindAction(mouse0, xaxis0, TO, IDACTION_YAW, Flip, Scale, %sensitivity);
- }
-
- if (String::ICompare(Control::getValue(IDCTG_OPTS_CFG_MOUSE_Y_FLIP), "TRUE") == 0)
- {
- bindAction(mouse0, yaxis0, TO, IDACTION_PITCH, Scale, %sensitivity);
- }
- else
- {
- bindAction(mouse0, yaxis0, TO, IDACTION_PITCH, Flip, Scale, %sensitivity);
- }
- }
-
- function setFreeLook(%value)
- {
- if (String::ICompare($pref::freeLookAlwaysOn, "FALSE") == 0)
- {
- echo("DdbEBUG: freelook: " @ %value);
- $pref::freeLook = %value;
- }
- else
- {
- $pref::freeLook = TRUE;
- }
- }
-
- //--- OPTIONS GRAPHICS ------------------------------------------------
-
- function OptionsGraphics::init()
- {
- FGSlider::setDiscretePositions(OptionsTextureDetail, 0);
- FGSlider::setDiscretePositions(OptionsTerrainDetail, 0);
- FGSlider::setDiscretePositions(OptionsLightingDetail, 0);
- FGSlider::setDiscretePositions(OptionsDecalDetail, 0);
- FGSlider::setDiscretePositions(OptionsShapeDetail, 0);
- FGSlider::setDiscretePositions(OptionsDamageDetail, 3);
- Control::setValue(OptionsTextureDetail, $pref::TerrainTextureDetail);
- Control::setValue(OptionsTerrainDetail, $pref::TerrainDetail);
- Control::setValue(OptionsLightingDetail, $pref::dynamicLightDistance/200);
- Control::setValue(OptionsDecalDetail, $pref::NumDecals/50);
- Control::setValue(OptionsShapeDetail, ($pref::staticShapeDetail - 0.2)/0.8);
- Control::setValue(OptionsDamageDetail, $pref::damageSkinDetail);
- }
-
- function OptionsGraphics::setLowDetail()
- {
- Control::setValue(OptionsTextureDetail, 0.0);
- Control::setValue(OptionsTerrainDetail, 0.0);
- Control::setValue(OptionsLightingDetail, 0.0);
- Control::setValue(OptionsDecalDetail, 0.0);
- Control::setValue(OptionsShapeDetail, 0.0);
- Control::setValue(OptionsDamageDetail, 0);
-
- OptionsTextureDetail::onAction();
- OptionsTerrainDetail::onAction();
- OptionsLightingDetail::onAction();
- OptionsDecalDetail::onAction();
- OptionsShapeDetail::onAction();
- OptionsDamageDetail::onAction();
- }
-
- function OptionsGraphics::setMediumDetail()
- {
- Control::setValue(OptionsTextureDetail, 0.5);
- Control::setValue(OptionsTerrainDetail, 0.5);
- Control::setValue(OptionsLightingDetail, 0.5);
- Control::setValue(OptionsDecalDetail, 0.5);
- Control::setValue(OptionsShapeDetail, 0.5);
- Control::setValue(OptionsDamageDetail, 1);
-
- OptionsTextureDetail::onAction();
- OptionsTerrainDetail::onAction();
- OptionsLightingDetail::onAction();
- OptionsDecalDetail::onAction();
- OptionsShapeDetail::onAction();
- OptionsDamageDetail::onAction();
- }
-
- function OptionsGraphics::setHighDetail()
- {
- Control::setValue(OptionsTextureDetail, 1.0);
- Control::setValue(OptionsTerrainDetail, 1.0);
- Control::setValue(OptionsLightingDetail, 1.0);
- Control::setValue(OptionsDecalDetail, 1.0);
- Control::setValue(OptionsShapeDetail, 1.0);
- Control::setValue(OptionsDamageDetail, 2);
-
- OptionsTextureDetail::onAction();
- OptionsTerrainDetail::onAction();
- OptionsLightingDetail::onAction();
- OptionsDecalDetail::onAction();
- OptionsShapeDetail::onAction();
- OptionsDamageDetail::onAction();
- }
-
- function OptionsTextureDetail::onAction()
- {
- %val = Control::getValue(OptionsTextureDetail);
- $pref::TerrainTextureDetail = %val;
- $pref::InteriorTextureDetail = floor(((%val)* -8)+ 8);
- $pref::skyDetail = floor(%val * 1.99);
- $pref::starDetail = floor(%val * 1.99);
- $pref::mipcap = floor(%val * 4.99) + 5;
- flushTextureCache();
- }
-
- function OptionsTerrainDetail::onAction()
- {
- $pref::TerrainDetail = Control::getValue(OptionsTerrainDetail);
- $pref::TerrainPerspectiveDistance = Control::getValue(OptionsTerrainDetail);
- $pref::TerrainVisibleDistance = (Control::getValue(OptionsTerrainDetail) * 1300) + 200 ;
- $pref::WeatherPrecipitation = floor(Control::getValue(OptionsTerrainDetail) * 1.4);
- }
-
- function OptionsLightingDetail::onAction()
- {
- $pref::dynamicLightDistance = Control::getValue(OptionsLightingDetail) * 200;
- $pref::interiorLightUpdateMS = ((1.0 - Control::getValue(OptionsLightingDetail)) * 984) + 16;
- }
-
- function OptionsDecalDetail::onAction()
- {
- $pref::NumDecals = Control::getValue(OptionsDecalDetail) * 50;
- $pref::maxNumSmokePuffs = (Control::getValue(OptionsDecalDetail) * 240) + 10;
- }
-
- function OptionsShapeDetail::onAction()
- {
- %value = Control::getValue(OptionsShapeDetail);
-
- $pref::staticShapeDetail = (Control::getValue(OptionsShapeDetail) * 0.8) + 0.2;
- $pref::vehicleShapeDetail = (Control::getValue(OptionsShapeDetail) * 0.8) + 0.2;
- $pref::playerShapeDetail = (Control::getValue(OptionsShapeDetail) * 0.8) + 0.2;
- $pref::animateWithTransitions = %value > 0.9;
- }
-
- function OptionsDamageDetail::onAction()
- {
- $pref::damageSkinDetail = Control::getValue(OptionsDamageDetail);
- }
-
-
- //--- OPTIONS NETWORK ------------------------------------------------
-
- function OptionsNetwork::init()
- {
- //make sure the fields are valid
- OptionsNetwork::validate();
-
- //initalize the gui
- Control::setValue(NetworkAutoRefresh, $pref::AutoRefresh);
- Control::setValue(NetworkHostPublic, $Server::HostPublicGame);
- Control::setValue(NetworkPortNumber, $server::port);
- Control::setValue(NetworkPacketRate, $pref::packetRate);
- Control::setValue(NetworkPacketSize, $pref::packetSize);
- OptionsNetwork::setPacketFrame();
-
- //setup the master server list
- FGMasterList::clear(OptionsNetworkMasterList);
-
- //popuplate the list
- $MasterCount = 0;
- while($Server::MasterAddressN[$MasterCount] != "")
- {
- OptionsNetwork::addMaster($Server::MasterName[$MasterCount], $Server::MasterAddressN[$MasterCount], $MasterCount);
- $MasterCount++;
- }
-
- if ($Server::CurrentMaster == "") $Server::CurrentMaster = 0;
- if ($MasterCount > 0)
- {
- if ($Server::CurrentMaster >= $MasterCount) $Server::CurrentMaster = 0;
- Control::setActive(OptionsNetworkRemoveMaster, true);
- FGMasterList::setSelected(OptionsNetworkMasterList, $Server::CurrentMaster);
- }
- else
- {
- Control::setActive(OptionsNetworkRemoveMaster, true);
- }
- }
-
- function OptionsNetwork::addMaster(%name, %addr, %id)
- {
- if (%name == "") %name = "Tribes Master";
- if (%addr != "")
- {
- FGMasterList::addEntry(OptionsNetworkMasterList, %name, %addr, %id);
- $Server::MasterName[%id] = %name;
- $Server::MasterAddressN[%id] = %addr;
- }
- }
-
- function OptionsNetwork::deleteSelectedMaster()
- {
- if ($Server::CurrentMaster >= 0)
- {
- //replace the current entry with the last
- if ($Server::CurrentMaster < $MasterCount - 1)
- {
- $Server::MasterName[$Server::CurrentMaster] = $Server::MasterName[$MasterCount - 1];
- $Server::MasterAddressN[$Server::CurrentMaster] = $Server::MasterAddressN[$MasterCount - 1];
- }
- $Server::MasterName[$MasterCount - 1] = "";
- $Server::MasterAddressN[$MasterCount - 1] = "";
-
- FGMasterlist::clear(OptionsNetworkMasterList);
-
- //popuplate the list
- $MasterCount = 0;
- while($Server::MasterAddressN[$MasterCount] != "")
- {
- OptionsNetwork::addMaster($Server::MasterName[$MasterCount], $Server::MasterAddressN[$MasterCount], $MasterCount);
- $MasterCount++;
- }
- }
- if ($MasterCount > 0)
- {
- if ($Server::CurrentMaster >= $MasterCount) $Server::CurrentMaster = 0;
- Control::setActive(OptionsNetworkRemoveMaster, TRUE);
- FGMasterList::setSelected(OptionsNetworkMasterList, $Server::CurrentMaster);
- selectNewMaster();
- }
- else
- {
- Control::setActive(OptionsNetworkRemoveMaster, FALSE);
- }
- }
-
- function OptionsNetwork::verifyMaster()
- {
- %name = Control::getValue(OptionsNetworkMasterName);
- %addr = Control::getValue(OptionsNetworkMasterAddress);
- if (%name != "" && %addr != "")
- {
- Control::setActive(DialogReturnButton, true);
- }
- else
- {
- Control::setActive(DialogReturnButton, false);
- }
- }
-
- function OptionsNetwork::newMaster()
- {
- %name = Control::getValue(OptionsNetworkMasterName);
- %addr = Control::getValue(OptionsNetworkMasterAddress);
- OptionsNetwork::addMaster(%name, %addr, $MasterCount);
-
- $Server::CurrentMaster = $MasterCount;
- FGMasterList::setSelected(OptionsNetworkMasterList, $Server::CurrentMaster);
- Control::setActive(OptionsNetworkRemoveMaster, true);
-
- $MasterCount++;
-
- GuiPopDialog(MainWindow, 0);
- selectNewMaster();
- }
-
- function OptionsNetwork::warnPublicServer()
- {
- GuiPushDialog(MainWindow, "gui\\hostwarn.gui");
- }
-
- function OptionsGui::HostPublicOK()
- {
- $Server::HostPublicGame = true;
- GuiPopDialog(MainWindow, 1);
- }
-
- function OptionsNetwork::HostPublicCancel()
- {
- $Server::HostPublicGame = false;
- Control::setValue(NetworkHostPublic, "FALSE");
- GuiPopDialog(MainWindow, 1);
- }
-
- function OptionsNetwork::shutdown()
- {
- OptionsNetwork::validate();
- }
-
- function OptionsNetwork::setPacketFrame()
- {
- %value = 1.0 - (($pref::packetFrame - 32) / (128 - 32));
- Control::setValue(NetworkPacketFrame, %value);
- }
-
- function NetworkPacketFrame::onAction()
- {
- %value = 1.0 - Control::getValue(NetworkPacketFrame);
- $pref::packetFrame = 32 + (%value * (128 - 32));
- }
-
- function OptionsNetwork::validate()
- {
- if ($pref::AutoRefresh == "") $pref::AutoRefresh = TRUE;
- if ($Server::HostPublicGame == "") $Server::HostPublicGame = FALSE;
-
- if ($pref::packetRate < 1) $pref::packetRate = 10;
- if ($pref::packetRate > 30) $pref::packetRate = 30;
- Control::setValue(NetworkPacketRate, $pref::packetRate);
-
- if ($pref::packetSize < 100) $pref::packetSize = 200;
- if ($pref::packetSize > 500) $pref::packetSize = 500;
- Control::setValue(NetworkPacketSize, $pref::packetSize);
-
- if ($pref::packetFrame < 32) $pref::packetFrame = 96;
- if ($pref::packetFrame > 128) $pref::packetFrame = 128;
- OptionsNetwork::setPacketFrame();
- }
-
-
- function OptionsNetwork::setT1Defaults()
- {
- $pref::packetRate = 15;
- $pref::packetSize = 400;
- $pref::packetFrame = 32;
- Control::setValue(NetworkPacketRate, $pref::packetRate);
- Control::setValue(NetworkPacketSize, $pref::packetSize);
- OptionsNetwork::setPacketFrame();
- }
-
- function OptionsNetwork::setISDNDefaults()
- {
- $pref::packetRate = 15;
- $pref::packetSize = 300;
- $pref::packetFrame = 32;
- Control::setValue(NetworkPacketRate, $pref::packetRate);
- Control::setValue(NetworkPacketSize, $pref::packetSize);
- OptionsNetwork::setPacketFrame();
- }
-
- function OptionsNetwork::setModemDefaults()
- {
- $pref::packetRate = 10;
- $pref::packetSize = 200;
- $pref::packetFrame = 96;
- Control::setValue(NetworkPacketRate, $pref::packetRate);
- Control::setValue(NetworkPacketSize, $pref::packetSize);
- OptionsNetwork::setPacketFrame();
- }
-
- //--- OPTIONS SOUND ------------------------------------------------
-
- function OptionsSound::init()
- {
- sfxClose();
-
- %SFX_QUERY_DSOUND = 1;
- %SFX_QUERY_DSOUND3D = 2;
- %SFX_QUERY_AUREAL3D = 3;
- %SFX_QUERY_LIVE3D = 4;
-
- FGSlider::setDiscretePositions(OptionsSoundCDVolume, 0);
- FGSlider::setDiscretePositions(OptionsSound2DVolume, 0);
- FGSlider::setDiscretePositions(OptionsSound3DVolume, 0);
- Control::setValue(OptionsSoundCDVolume, $pref::cdVolume);
- Control::setValue(OptionsSound2DVolume, $pref::sfx2dVolume);
- Control::setValue(OptionsSound3DVolume, $pref::sfx3dVolume);
-
- //setup the 3d sound driver combo
- FGCombo::clear(OptionsSound3DDriver);
- if (sfxQuery(%SFX_QUERY_DSOUND)) FGCombo::addEntry(OptionsSound3DDriver, "Direct Sound", %SFX_QUERY_DSOUND);
- //if (sfxQuery(%SFX_QUERY_DSOUND3D)) FGCombo::addEntry(OptionsSound3DDriver, "Direct Sound 3D", %SFX_QUERY_DSOUND3D);
- if (sfxQuery(%SFX_QUERY_AUREAL3D)) FGCombo::addEntry(OptionsSound3DDriver, "Aureal Sound 3D", %SFX_QUERY_AUREAL3D);
- //if (sfxQuery(%SFX_QUERY_LIVE3D)) FGCombo::addEntry(OptionsSound3DDriver, "Sound Blaster Live 3D", %SFX_QUERY_LIVE3D);
-
- if ($pref::useDSound) FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_DSOUND);
- //else if ($pref::useDSound3D) FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_DSOUND3D);
- else if ($pref::useAureal3D) FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_AUREAL3D);
- //else if ($pref::useLive3D) FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_LIVE3D);
- else
- {
- $pref::useDSound = FALSE;
- $pref::useDSound3D = FALSE;
- $pref::useAureal3D = FALSE;
- $pref::useLive3D = FALSE;
-
- FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_DSOUND);
- //FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_DSOUND3D);
- FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_AUREAL3D);
- //FGCombo::setSelected(OptionsSound3DDriver, %SFX_QUERY_LIVE3D);
-
- %entry = FGCombo::getSelected(OptionsSound3DDriver);
- if (%entry == %SFX_QUERY_DSOUND) $pref::useDSound = TRUE;
- //else if (%entry == %SFX_QUERY_DSOUND3D) $pref::useDSound3D = TRUE;
- else if (%entry == %SFX_QUERY_AUREAL3D) $pref::useAureal3D = TRUE;
- //else if (%entry == %SFX_QUERY_LIVE3D) $pref::useLive3D = TRUE;
-
- }
-
- //open sound
- sfxOpen();
-
- //intialize a var
- if ($pref::playVoices == "") $pref::playVoices = true;
- Control::setValue(OptionsSoundPlayVoices, $pref::playVoices);
- }
-
- function OptionsSound3DDriver::onAction()
- {
- %SFX_QUERY_DSOUND = 1;
- %SFX_QUERY_DSOUND3D = 2;
- %SFX_QUERY_AUREAL3D = 3;
- %SFX_QUERY_LIVE3D = 4;
-
- sfxClose();
-
- $pref::useDSound = FALSE;
- $pref::useDSound3D = FALSE;
- $pref::useAureal3D = FALSE;
- $pref::useLive3D = FALSE;
-
- %entry = FGCombo::getSelected(OptionsSound3DDriver);
- echo("Survey says: " @ %entry);
- if (%entry == %SFX_QUERY_DSOUND) $pref::useDSound = TRUE;
- //else if (%entry == %SFX_QUERY_DSOUND3D) $pref::useDSound3D = TRUE;
- //else if (%entry == %SFX_QUERY_AUREAL3D) $pref::useAureal3D = TRUE;
- //else if (%entry == %SFX_QUERY_LIVE3D) $pref::useLive3D = TRUE;
-
- sfxOpen();
- }
-
- function OptionsSoundCDVolume::onAction()
- {
- $pref::CDVolume = Control::getValue(OptionsSoundCDVolume);
- rbSetVolume(CD, 1 - $pref::CDVolume);
- }
-
- function OptionsSoundCDMusic::onAction()
- {
- if ($pref::CDMusic)
- {
- echo("Music is ON");
- $userCDOverride = False;
- newRedBook (CD, MainWindow);
- if ($cdTrack != "" && $cdTrack != 0)
- {
- rbSetPlayMode (CD, $cdPlayMode);
- rbPlay (CD, $cdTrack);
- }
- }
- else
- {
- echo("Music is OFF");
- rbSetPlayMode (CD, 0);
- rbStop (CD);
- deleteObject (CD);
- }
- }
-
- function OptionsSound2DVolume::onAction()
- {
- $pref::sfx2dVolume = 0.01 + (0.99 * Control::getValue(OptionsSound2DVolume));
- }
-
- function OptionsSound3DVolume::onAction()
- {
- $pref::sfx3dVolume = 0.01 + (0.99 * Control::getValue(OptionsSound3DVolume));
- }
-
-
-